Using a network-based service can be a frustrating experience that is marked by the appearances of familiar hourglass or beachball icons. These icons indicate that a request is in progress and that a user must continue to wait for a response to the request. Unfortunately, the request may not be fulfilled for some time, if ever. The user is often not provided an accurate indication of when the request is expected to be fulfilled. Moreover, when there is a problem, the user is rarely provided a reliable indication of where the problem lies, and the user is even less likely to be told how the problem might be mitigated.
Even inside the network of a single enterprise, where traffic does not need to cross the open Internet, users are subjected to the negative effects of network problems. Information technology (IT) personnel of the enterprise are charged with locating and mitigating these network problems. Unfortunately, IT personnel are often also uncertain how to diagnose and remedy such network problems. Although IT personnel are given management tools that indicate when a particular hardware component (e.g., a server, link, switch, etc.) is overloaded, these tools can produce so many alerts that the IT personnel eventually start to ignore them. Such management tools also usually fail to address the integrated and changing nature of enterprise networks. In short, network problems tend to persist because current network and service monitoring tools do not scale to the size, complexity, or rate-of-change of today's enterprise networks.